package com.cskaoyan._06oop3._01polymorphic._02demo;

/**
 * @author Macro_Ray
 * @since 2024/3/13 17:13
 */
//
//
public class Demo {
    public static void main(String[] args) {
        // 创建对象 多态
        Animal animal = new Dog();
        // 调用成员变量： 编译看左边，运行看左边
        // 编译看左边：javac编译代码时，会看左边的父类中有没有这个变量
        // 运行看左边：Java运行代码时，实际获取的就是左边父类中成员变量的值
        System.out.println(animal.name); //动物

        // 调用成员方法： 编译看左边，运行看右边.
        // 编译看左边：javac编译代码时，会看左边的父类中有没有这个方法
        // 运行看右边：java运行代码时，实际上运行的是子类中的方法
        animal.show();// Dog -- show方法

    }
}
class Animal{
    String name = "动物";
    public void show(){
        System.out.println("Animal --- show方法");
    }
}
class Dog extends Animal{
    String name = "狗";

    @Override
    public void show() {
        System.out.println("Dog --- show方法");
    }
}
class Cat extends Animal{
    String name = "猫";

    @Override
    public void show() {
        System.out.println("Cat --- show方法");
    }
}



